package com.bookrecomm.vo;

import lombok.Data;

import java.time.LocalDateTime;
import java.util.Set;

/**
 * 用户信息视图对象
 * 用于向前端返回用户信息，过滤敏感字段
 */
@Data
public class UserVO {

    /**
     * 用户ID
     */
    private Long id;

    /**
     * 用户名
     */
    private String username;

    /**
     * 用户昵称
     */
    private String nickname;

    /**
     * 用户邮箱
     */
    private String email;

    /**
     * 用户手机号（脱敏处理）
     */
    private String phone;

    /**
     * 用户头像URL
     */
    private String avatarUrl;

    /**
     * 用户性别：0-未知，1-男，2-女
     */
    private Integer gender;

    /**
     * 用户生日
     */
    private LocalDateTime birthday;

    /**
     * 用户简介
     */
    private String bio;

    /**
     * 用户状态：0-禁用，1-正常
     */
    private Integer status;

    /**
     * 用户角色列表
     */
    private Set<String> roles;

    /**
     * 阅读图书数量
     */
    private Long readCount;

    /**
     * 收藏图书数量
     */
    private Long favoriteCount;

    /**
     * 评论数量
     */
    private Long commentCount;

    /**
     * 总阅读时长（分钟）
     */
    private Long totalReadTime;

    /**
     * 创建时间
     */
    private LocalDateTime createdAt;

    /**
     * 最后登录时间
     */
    private LocalDateTime lastLoginAt;

    /**
     * JWT令牌（登录成功时返回）
     */
    private String token;
}
